This invention relates in general to a computer system and, more particularly, to a method and apparatus for facilitating the insertion and removal of a module from a socket in the computer system.
In a computer system, it is common to provide one or more sockets or xe2x80x9cslotsxe2x80x9d, which can each removably receive a module. This permits the capabilities of the system to be easily modified after the system has been manufactured. As one example, the class of personal computers commonly known IBM-compatible computers often include a Peripheral Component Interconnect bus (PCI bus), which conforms to a PCI industry standard, and which includes one or more PCI sockets that can each removably receive a PCI module. A PCI module is also commonly referred to as a PCI card. Various different types of PCI modules are commercially available.
In order to insert or remove a PCI module, it was traditionally necessary to completely turn off the power to the entire computer system, in order to avoid damaging either the PCI module or the computer system during the insertion or removal of the module. However, in a multi-tasking environment, where the user has a number of programs actively running, the user faces the relatively tedious task of exiting each of these programs, turning off the power, inserting or removing the module in question, thereafter turning the power back on, and then rebooting each of the programs in question. Accordingly, the specification for the PCI standard is being extended to allow a module to be inserted into or removed from a selected socket during normal system operation, without turning off the system power. According to the revised PCI specification, this is effected by uncoupling the selected socket from the PCI bus while a module is inserted or removed from the selected socket. Since the power to the rest of the system remains on or xe2x80x9chotxe2x80x9d while this occurs, this extended capability of the PCI specification is sometimes referred to as xe2x80x9chot-plugxe2x80x9d capability.
One important consideration is that, according to the PCI standard, the PCI system clock may have a speed of either 33 MHz or 66 MHz. Some PCI modules are designed to operate at either of these two clock speeds. However, other PCI modules are designed to operate at only one of these two clock speeds. In some computer systems built around the original PCI standard, one of these two clock speeds is selected when power is turned on, in dependence on the specific PCI modules which happen to be present at that time in the PCI sockets of the system. Under the expanded PCI standard, with the xe2x80x9chot-plugxe2x80x9d capability, insertion of a PCI module presents a problem, due to the fact that the inserted module was not taken into account when the clock speed was selected, and thus might not be compatible with the selected clock speed. The specification for the expanded PCI standard does not specify how to resolve this problem.
From the foregoing, it may be appreciated that a need has arisen for a method and apparatus for facilitating insertion and removal of a module from a socket in a computer system, without turning off power to the entire computer system, and without damaging either the module or the system, which ensures that the frequency of clock signals subsequently supplied to an inserted module are compatible with the capabilities of that module.
According to the present invention, a method and apparatus are provided to address this need, in situations where there are a plurality of sockets which can each removably receive a module and which each have a clock speed selection terminal and a clock input terminal. The method and apparatus involve: selecting one of a plurality of clock speeds as a function of information from the clock speed selection terminals of the sockets; saving an indication of the selected clock speed; thereafter providing for the clock input terminals of the sockets a clock signal at the clock speed specified by the saved indication; and thereafter permitting one of insertion and removal of a module from a selected one of the sockets during normal system operation, while continuing to provide the clock signal at the clock speed specified by the saved indication to the clock input terminals of the sockets other than the selected socket.